package com.keqiang.chart.impl.radar

import androidx.annotation.FloatRange
import androidx.annotation.Px

/**
 * 雷达图X轴
 *
 * @author Created by wanggaowan on 2022/10/27 13:37
 */
open class XAxis : Axis() {

    /**
     * 轴线绘制起始偏移值
     */
    @setparam:Px
    var lineStartOffset: Float = 0f
        set(value) {
            field = if (value < 0f) {
                0f
            } else {
                value
            }
        }

    /**
     * 轴线结束位置padding，如果此值大于0，则[YAxis]和内容则往里缩进
     */
    @setparam:Px
    var lineEndPadding: Float = 0f

    /**
     * 当轴线角度为90°或270°时，轴线文本根据轴线水平居中绘制。此时误差范围代表判定为90°或270°的范围。
     * 比如当前是81°，误差范围时10°，那么81°则按照90°绘制规则，轴线文本水平居中绘制
     */
    @setparam:FloatRange(from = 0.0)
    var angleErrorRange = 10f
        set(value) {
            if (value < 0f) {
                return
            }
            field = value
        }

    override fun apply(axis: Axis) {
        super.apply(axis)
        if (axis is XAxis) {
            this.lineStartOffset = axis.lineStartOffset
            this.lineEndPadding = axis.lineEndPadding
            this.angleErrorRange = axis.angleErrorRange
        }
    }
}